package logic

import (
	"strings"
)

// arrayHas 包含
func arrayHas(array []string, str string) bool {
	for _, s := range array {
		if s == str {
			return true
		}
	}
	return false
}

// arrayEqual 数组相等
func arrayEqual(a []string, b []string) bool {
	if a == nil || b == nil {
		return a == nil && b == nil
	}
	if len(a) != len(b) {
		return false
	}
	for i, s := range a {
		if s != b[i] {
			return false
		}
	}
	return true
}

// isVar 是否包含变量
func isVar(str ...string) bool {
	for _, s := range str {
		if strings.HasPrefix(s, "_") {
			return true
		}
	}
	return false
}

// arrayAnswer 数组中获取答案
func arrayAnswer(a []string, b []string) []Answer {
	ret := []Answer{}
	if a == nil || b == nil {
		return ret
	}
	if len(a) != len(b) {
		return ret
	}
	for i, s := range a {
		if s != b[i] {
			if isVar(b[i]) {
				ret = append(ret, Answer{Var: b[i], Str: s})
			}
			if isVar(s) {
				ret = append(ret, Answer{Var: s, Str: b[i]})
			}
		}
	}
	return ret
}

func addValue(m map[string][]string, key, value string) {
	if s, ok := m[key]; ok {
		m[key] = append(s, value)
	} else {
		m[key] = []string{value}
	}
}
